package com.itheima.controller;

import com.itheima.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

import java.util.Date;

/**
 * @author zhangyan
 * @date 2021/2/20 9:00
 */

@Controller
@RequestMapping("/user")
public class UserController {

    //返回值为字符串
    @GetMapping("/testGet")
    @ResponseBody
    /**
     * @ResponseBody string，响应string，原样返回
     */
    public String testGet(Integer id){
        System.out.println("testGet id=" + id);
        //直接返回字符串,默认为返回一个success.jsp页面
        return "success";
    }

    //返回值为pojo
    @GetMapping("/testGet1")
    @ResponseBody
    /**
     * @ResponseBody pojo,需要转换为json再返回(要导入依赖即可)
     */
    public User testGet1(Integer id){
        User user = new User();
        user.setId(1);
        user.setUsername("张三");
        user.setSex("男");
        System.out.println("testGet id=" + id);
        return user;
    }

    //返回值为pojo
    @PostMapping("/testPost")
    @ResponseBody
    public String testPost(@RequestBody User user){
        System.out.println(user);
        return "success";
    }

    /*
    1. RequestBody: 标记在控制器方法的参数上，对post请求体参数进行解析。
    2. ResponseBody
		位置：可以标记在类或者方法上， 标记在类上对每个方法有效
		作用：可以把方法的返回值序列化成json数据并返回，但需要引入转换的json的依赖
    3. @RestController注解
		@RestController = @ResponseBody + @Controller
     */
}